package jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class JDBCDemo7 {
    public static void main(String[] args) {
        //使用预编译SQL语句解决SQL注入攻击问题

        try (Connection connection = DBUtil.getConnection();) {


            //从数据库表中选取 id、username、possword、nickname这几个列的数据

            //WHERE 子句，通常用于带有参数化查询的

            String sql = "SELECT id,username,possword,nickname" +
                    "FROM user" +
                    "WHERE username=? AND possword=?";


          //代码借助 Connection 对象 connection 来创建一个 PreparedStatement 对象 ps。
            // sql 是预编译的 SQL 语句，该语句里能够包含占位符 ?。
            PreparedStatement ps = connection.prepareStatement(sql);

            //使用了WHERE子句筛选条件，所以需要通过 PreparedStatement 对象为这些参数设置用户名和密码。
            ps.setString(1, "丽丽");
            ps.setString(2, "666888");

            ResultSet rs = ps.executeQuery();
            if (rs.next()) {
                System.out.println("登录成功");
            } else {

                System.out.println("登录失败");

            }
        }catch(SQLException e){
            e.printStackTrace();
        }

    }
}